package com.example.online_exam_system.service;

import com.example.online_exam_system.dto.TeacherregDto;
import com.example.online_exam_system.entity.Teacher;

import java.util.List;
import java.util.Map;


/**
 * (Teacher)表服务接口
 *
 * @author lianglong@asiainfo.com
 * @since 2021-11-25 13:58:39
 */
public interface TeacherService {

    /**
     * 通过ID查询单条数据
     *
     * @param teacherid 主键
     * @return 实例对象
     */
    Teacher queryById(Object teacherid);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Teacher> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param teacher 实例对象
     * @return 实例对象
     */
    Teacher insert(Teacher teacher);


    /**
     * @description 教师注册
     * @param
     * @return
     * @author lianglong
     */
    int insert(TeacherregDto teacherregDto);

    /**
     * 修改数据
     *
     * @param teacher 实例对象
     * @return 实例对象
     */
    Teacher update(Teacher teacher);

    /**
     * 通过主键删除数据
     *
     * @param teacherid 主键
     * @return 是否成功
     */
    boolean deleteById(Object teacherid);

    /**
     * @description 根据教师信息检查用户是否存在
     * @param inParam
     * @return list
     * @author lianglong
     */
    List<Map<String, Object>> queryByuserName(Map<String, Object> inParam);

    /**
     * @description 获取教师信息
     * @param
     * @return
     * @author lianglong
     */
    Map<String, Object> getTeacherInfo(String realname);

    /**
     * @description 根据教师姓名获取教师id
     * @param
     * @return
     * @author lianglong
     */
    String getTeacherId(String realname);

    /**
     * @description 根据姓名查找密码
     * @param
     * @return
     * @author lianglong
     */
    String getPassword(Map<String, Object> inParam);

    /**
     * @description 更新用户信息
     * @param
     * @return
     * @author lianglong
     */
    int updateTeacherInfo(Map<String, Object> inParam);

    Map<String,Object> queryByUserId(String teacherId);

    List<Map<String, Object>> getAllInfo();

}
